// logs.js
// const util = require('../../utils/util.js')

// Page({
//   data: {
//     logs: []
//   },
//   onLoad() {
//     this.setData({
//       logs: (wx.getStorageSync('logs') || []).map(log => {
//         return {
//           date: util.formatTime(new Date(log)),
//           timeStamp: log
//         }
//       })
//     })
//   }
// })

const app = getApp(); // 获取到小程序全局唯一的 App 实例。
const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0';

Page({

  /**
   * 页面的初始数据
   */
  data: {
		isLoggedIn: false,
		hasSubscribed: false,
		templateId: 'PU_crKS9E8O6rjC_4wtmbYPqkTR-S2ew0u0NmLtxxg8' // 消息模板ID
    // avatarUrl: defaultAvatarUrl,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {
    // 初始化页面数据
    this.updateFromGlobalData();
    // 检查订阅状态
		this.checkMessageSubscription();

	},

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 页面显示时更新数据
    this.updateFromGlobalData();
	},

  // 从全局数据更新页面数据
  updateFromGlobalData() {
    this.setData({
      isLoggedIn: app.globalData.isLoggedIn,
      // userId: app.globalData.userId,
      hasSubscribed: app.globalData.hasSubscribed
    });
  },

  // 全局数据更新回调
  onGlobalDataUpdate() {
    this.updateFromGlobalData();
  },

	// 检查消息订阅状态
  checkMessageSubscription() {
    const subscribed = wx.getStorageSync('hasSubscribedMessage') || false;
    this.setData({
      hasSubscribedMessage: subscribed
    });
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },

  onUserLog(e){
    wx.showLoading({
      title: '登录中...',
    });
    // 登录
    wx.login({
      timeout: 7000,
      success: loginRes => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
        // console.log(loginRes)
        if(loginRes.code){
          wx.request({
            url: app.globalData.baseUrl + '/wechat/login/',
            method: 'POST',
            data: {
              code: loginRes.code
            },
            success: (res) => {
              wx.hideLoading();
              // console.log(res.data) // {openid: "ose945G8kYMj_T5ZPG_rAPT1mjYA", session_key: "UCJ0wPYZqHxQdANnEMnFGg==", status: "success"}
              app.updateLoginStatus(true);
              if (res.data.status === "success") {
                // 存储 openid 等用户信息
                wx.setStorageSync('openid', res.data.openid);

                wx.showToast({
                  title: '登录成功',
                  icon: 'success',
                  duration: 1000,
                })
              } else {
                  console.error('登录失败:')
                }
            }, // end of wx.request success: (res) =>
            fail: (err) => {
              wx.hideLoading();
              console.error('请求失败:', err)
            }
          }) // end of wx.request
        } // end of if (loginRes.code)
        else{
          console.log('loginRes.code 为空'+loginRes.errMsg)
        }
      }, // end of success: loginRes => {
      fail: loginRes => { // 接口调用失败的回调函数

      },
      complete: loginRes => { // 接口调用结束的回调函数（调用成功、失败都会执行）
      },
    }) // end of wx.login
  }, // end of onUserLog(e)

  // 调起客户端小程序订阅消息界面，返回用户订阅消息的操作结果
  onPopupSubscription(evt){
		this.onGlobalDataUpdate();
		this.checkMessageSubscription();
		if(!this.data.hasSubscribed){
			wx.requestSubscribeMessage({
				tmplIds: [this.data.templateId],
				success: (res) => {
					if(res[this.data.templateId] === 'accept'){
						app.updateSubscribeStatus(true);
						// console.log(app.globalData.hasSubscribed)
						// 可以在这里存储到本地，避免重复弹窗
						wx.setStorageSync('hasSubscribedMessage', true);
						// console.log("用户同意订阅消息")
						wx.showToast({
							title: '订阅成功',
							icon: 'success'
						});
					}
					else {
						// 用户拒绝订阅
						wx.showToast({
							title: '订阅被拒绝',
							icon: 'none'
						});
					}
				}, // end of success: (res) =>
				fail: (err) => {
					console.error('订阅消息失败:', err);
					wx.showToast({
						title: '订阅失败',
						icon: 'none'
					});
				} // end of fail: (err) =>
			}) // end of wx.requestSubscribeMessage
		}
		else {
			console.log("取消通知")
			app.updateSubscribeStatus(false);
			wx.setStorageSync('hasSubscribedMessage', false);
		}
  }, // end of onPopupSubscription(evt){

	onSendMessageTest(){
		app.GlobalonSendMessageTest();
	// 	const app = getApp();
	// 	// console.log(app.globalData.isLoggedIn);
	// 	// console.log(app.globalData.hasSubscribed);
	// 	// 检查两个前提条件
	// 	if (!app.globalData.isLoggedIn) {
	// 		wx.showToast({
	// 			title: '请先登录',
	// 			icon: 'none',
	// 			duration: 2000
	// 		});
	// 		return;
	// 	}
	// 	if (!app.globalData.hasSubscribed) {
	// 		wx.showToast({
	// 			title: '请先同意订阅消息',
	// 			icon: 'none',
	// 			duration: 2000
	// 		});
	// 		// 可以在这里触发订阅授权弹窗
	// 		// this.onPopupSubscription();
	// 		return;
	// 	}
	// 		// 在用户同意订阅后，调用服务端发送测试消息
	// 		wx.request({
	// 			url: app.globalData.baseUrl + '/wechat/send-subscribe-message/',
	// 			method: 'POST',
	// 			data: {
	// 				openid: wx.getStorageSync('openid'),
	// 				template_id: 'PU_crKS9E8O6rjC_4wtmbYPqkTR-S2ew0u0NmLtxxg8',
	// 			// page:
	// 				data: {
	// 					"thing1": {"value": "家"},
	// 					"thing2": {"value": "水位高报警"},
	// 					"time3": {"value": "2024-01-15 14:30"}
	// 				}
	// 		},
	// 		success: (msgResult) => {
	// 			console.log('消息发送request结果:', msgResult.data)
	// 		},
	// 		fail: (err) => {
	// 			console.error('消息发送request失败:', err);
	// 		}
	// 	}) // end of wx.request({
	} // end of onSendMessageTest()
}) // end of Page({